package com.bj58.mis.apm.server.statistics.mapper;

import com.bj58.mis.apm.server.statistics.dto.common.Pair;
import com.bj58.mis.apm.server.statistics.dto.roc.AuthCube;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @author: zhangfx
 * @create: 2018-07-04 15:47
 **/
@Mapper
public interface RocAuthMapper {
    /**
     * 获取指定Cube的权限列表
     * @param cubeId CubeID
     * @return AuthCube列表
     */
    List<AuthCube> queryAuthCubeByCube(String cubeId);

    /**
     * 获取指定Owner的权限列表
     * @param owner 负责人账号
     * @param projectId 项目id
     * @return AuthCube列表
     */
    List<AuthCube> queryAuthCubeByOwnerAndProject(@Param("owner") String owner, @Param("projectId") String projectId);

    /**
     * 查询Roc中的Cube总数
     * @param projectId 项目id
     * @return
     */
    long queryRocCubeCount(String projectId);

    /**
     * 查询Roc权限中负责人列表
     * @param projectId
     * @param keyword
     * @return
     */
    List<Pair> qeuryOwners(@Param("projectId") String projectId, @Param("keyword") String keyword);

    /**
     * 获取普通用户项目列表
     * @param owner
     * @return
     */
    List<Pair> getAuthProjectIdList(@Param("owner") String owner);
}
